#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
验证模型文件的脚本
"""
import os
from pathlib import Path

def check_model_files():
    """检查模型文件"""
    model_path = Path("models/OFA-Sys/chinese-clip-vit-base-patch16")
    
    print("检查模型路径: %s" % model_path)
    
    if not model_path.exists():
        print("[ERROR] 模型路径不存在")
        return
    
    print("模型路径存在，检查文件列表:")
    for file_path in model_path.iterdir():
        print("  - %s (%s)" % (file_path.name, format_file_size(file_path.stat().st_size)))
    
    # 检查特定的模型文件
    pytorch_bin_exists = (model_path / "pytorch_model.bin").exists()
    safetensors_exists = (model_path / "model.safetensors").exists()
    
    print("\n模型文件检查:")
    print("  - pytorch_model.bin: %s" % ("存在" if pytorch_bin_exists else "不存在"))
    print("  - model.safetensors: %s" % ("存在" if safetensors_exists else "不存在"))
    
    if pytorch_bin_exists and not safetensors_exists:
        print("\n[INFO] 这是使用 pytorch 格式的模型，需要 use_safetensors=False")
    elif safetensors_exists:
        print("\n[INFO] 这是使用 safetensors 格式的模型，需要 use_safetensors=True")
    else:
        print("\n[ERROR] 找不到模型文件")

def format_file_size(size_bytes):
    """格式化文件大小"""
    if size_bytes == 0:
        return "0B"
    size_names = ["B", "KB", "MB", "GB"]
    import math
    i = int(math.floor(math.log(size_bytes, 1024)))
    p = math.pow(1024, i)
    s = round(size_bytes / p, 2)
    return "%s %s" % (s, size_names[i])

if __name__ == "__main__":
    check_model_files()